package leetcode;

/**
 * @创建人 MBY381
 * @创建时间 2022/4/25 19:46
 * @描述 给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  
 * 写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。
 *

 */
public class Solurion704 {
    public static void main(String[] args) {
        int[] nums=new int[]{1,2,3,5,6,7};
        System.out.println(search(nums,3));
    }
    public static int search(int[] nums, int target) {
        int l = 0;
        int r = nums.length - 1;
        while (l <= r) {
            //从数组首尾开始，直到二者相遇 fast-templatwhile(l = r){

            int m = (l + r) / 2; //每次检查中点的值
            if (nums[m] == target)
                return m;

            if (nums[m] > target) {
                r = m - 1;//进入左的区间
            } else {
                l = m + 1;//进入右区间else
            }
        }
        return -1; //未找到return -1;

    }

}